package uba.algo3.tp2.ej1;

import java.util.ArrayList;
import java.util.HashSet;
import java.lang.Comparable;


public class Ciudad implements Comparable<Ciudad> {

	private int id;
	private String nombre;
	private HashSet<Arista> Adyacentes;
	private int pesoHastaAqui=0;
	//private boolean yaVisto= false;
	
	Ciudad(int id, String nombre, HashSet<Arista> ady){
		this.id= id;
		this.nombre= nombre;
		Adyacentes= ady;
	}
	
	Ciudad(String nombre){
		this.nombre= nombre;
		Adyacentes = new HashSet<Arista>();
	}
	
	public int obtenerId(){
		return id;
	}
	
	public String obtenerNombre(){
		return nombre;
	}
	
	public HashSet<Arista> obtenerAdy(){
		return Adyacentes;
	}
				
	public void agregarAdy(HashSet<Arista> ady){
		Adyacentes = ady;
	}
	
	/*public boolean fueVisto()
	{
		return yaVisto;
	}*/
	
	/*public void marcarComovisto()
	{
		yaVisto= true;
	}*/
	
	public int obtenerPesoHastaAqui()
	{
		return pesoHastaAqui;
	}
	
	public void cambiarPesoHastaAqui(int peso)
	{
		pesoHastaAqui= peso;
	}
	
	@Override
	public String toString()
	{
		return nombre + " pesoHastaAqui: " + pesoHastaAqui + "Adyacentes: " + obtenerAdy();// + " Fue Visto?: " + yaVisto;
	}
	
	public int compareTo(Ciudad otra){ //implementa el metodo compareTo de la interfaz Comparable
		if(this.pesoHastaAqui == otra.pesoHastaAqui)
			return 0;
		else
			if(this.pesoHastaAqui > otra.pesoHastaAqui)
				return -1; //como PriorityQueue es un MinHeap, el elem "mas chico" es el de mayor pesoHastaAqui
			else
				return 1;
	}
}
